/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package skyproc;

import java.io.*;
import java.util.ArrayList;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 *
 * @author Justin Swanson
 */
class EmbeddedScripts {

    static Map<Integer, Script> scripts = null;

    // Highly specific function meant to parse the function list from
    // mod.gib.me/skyrim/functions.html as an easier way to generate
    // script objects, rather than typing it all by hand.
    // Shouldn't need to be used by you or any users.
    static void parseScriptData() throws FileNotFoundException, IOException {
	String dir = "Validation Files/";
	BufferedReader in = new BufferedReader(new FileReader(dir + "EmbeddedScriptSource.txt"));
	BufferedWriter out = new BufferedWriter(new FileWriter(dir + "EmbeddedScriptOut.txt"));
	BufferedWriter log = new BufferedWriter(new FileWriter(dir + "EmbeddedScriptOutLog.txt"));
	ArrayList<String> outStrings = new ArrayList<String>();
	while (in.ready()) {
	    String line = in.readLine();
	    log.write("Read Line: " + line);
	    Scanner tokenizer = new Scanner(line);
	    try {
		int index = Integer.valueOf(tokenizer.next());
		log.write("  Index: " + index);
		if (index < 4096) {
		    log.write("  Skipped.");
		    continue;
		} else {
		    index -= 4096;
		}
		String name = tokenizer.next();
		if (name.contains("ref.")) {
		    name = tokenizer.next();
		}
		log.write("  Ref: " + name);
		ArrayList<Boolean> parameterMask = new ArrayList<Boolean>();
		tokenizer.useDelimiter(",");
		while (tokenizer.hasNext()) {
		    String parameter = tokenizer.next();
		    if (parameter.contains("UNK")) {
			parameterMask.add(true);
			log.write("  Parameter " + parameter + " TRUE");
		    } else {
			parameterMask.add(false);
			log.write("  Parameter " + parameter + " FALSE");
		    }
		}

		// Generate string
		String outString = "scripts.put(" + index + ", new Script(\"" + name + "\", " + index;
		for (Boolean b : parameterMask) {
		    outString += ", " + b;
		}
		outString += "));";
		outStrings.add(outString);

	    } catch (NumberFormatException ex) {
		log.write("  Skipped");
	    }
	}

	for (String s : outStrings) {
	    out.write(s + "\n");
	}

	in.close();
	out.close();
	log.close();
    }


    // NOTE:  List is NOT 100% correct.  Needs manual CK checking for each.  To be done later.
    static void init() {
	scripts = new TreeMap<Integer, Script>();
	scripts.put(0, new Script("GetWantBlocking", 0));
	scripts.put(1, new Script("GetDistance", 1, true));
	scripts.put(2, new Script("AddItem", 2, true, false, false));
	scripts.put(3, new Script("SetEssential", 3, true, false, false));
	scripts.put(4, new Script("Rotate", 4, true, false));
	scripts.put(5, new Script("GetLocked", 5));
	scripts.put(6, new Script("GetPos", 6, true));
	scripts.put(7, new Script("SetPos", 7, true, false));
	scripts.put(8, new Script("GetAngle", 8, true));
	scripts.put(9, new Script("SetAngle", 9, true, false));
	scripts.put(10, new Script("GetStartingPos", 10, true));
	scripts.put(11, new Script("GetStartingAngle", 11, true));
	scripts.put(12, new Script("GetSecondsPassed", 12));
	scripts.put(13, new Script("Activate", 13, true, false));
	scripts.put(14, new Script("GetActorValue", 14, false, true, false));
	scripts.put(15, new Script("SetActorValue", 15, false, true, false, false));
	scripts.put(16, new Script("ModActorValue", 16, false, true, false, false));
	scripts.put(17, new Script("SetAtStart", 17));
	scripts.put(18, new Script("GetCurrentTime", 18));
	scripts.put(19, new Script("PlayGroup", 19, true, false, false));
	scripts.put(20, new Script("LoopGroup", 20, true, false, false, false));
	scripts.put(21, new Script("SkipAnim", 21));
	scripts.put(22, new Script("StartCombat", 22, false));
	scripts.put(23, new Script("StopCombat", 23));
	scripts.put(24, new Script("GetScale", 24));
	scripts.put(25, new Script("IsMoving", 25));
	scripts.put(26, new Script("IsTurning", 26));
	scripts.put(27, new Script("GetLineOfSight", 27, false, true));
	scripts.put(28, new Script("AddSpell", 28, true, false));
	scripts.put(29, new Script("RemoveSpell", 29, true, false));
	scripts.put(30, new Script("Cast", 30, true, false, true, true));
	scripts.put(31, new Script("GetButtonPressed", 31));
	scripts.put(32, new Script("GetInSameCell", 32, true));
	scripts.put(33, new Script("Enable", 33, false));
	scripts.put(34, new Script("Disable", 34, false));
	scripts.put(35, new Script("GetDisabled", 35));
	scripts.put(36, new Script("MenuMode", 36, false));
	scripts.put(37, new Script("PlaceAtMe", 37, true, false, false, false));
	scripts.put(38, new Script("PlaySound", 38, true, false));
	scripts.put(39, new Script("GetDisease", 39));
	scripts.put(40, new Script("FailAllObjectives", 40, false));
	scripts.put(41, new Script("GetClothingValue", 41));
	scripts.put(42, new Script("SameFaction", 42, false));
	scripts.put(43, new Script("SameRace", 43, false));
	scripts.put(44, new Script("SameSex", 44, false));
	scripts.put(45, new Script("GetDetected", 45, false));
	scripts.put(46, new Script("GetDead", 46));
	scripts.put(47, new Script("GetItemCount", 47, true));
	scripts.put(48, new Script("GetGold", 48));
	scripts.put(49, new Script("GetSleeping", 49));
	scripts.put(50, new Script("GetTalkedToPC", 50));
	scripts.put(51, new Script("Say", 51, false, false, true, false, false, false));
	scripts.put(52, new Script("SayTo", 52, false, false, false, false));
	scripts.put(53, new Script("GetScriptVariable", 53, true, true, false));
	scripts.put(54, new Script("StartQuest", 54, false));
	scripts.put(55, new Script("StopQuest", 55, false));
	scripts.put(56, new Script("GetQuestRunning", 56, false, false));
	scripts.put(57, new Script("SetStage", 57, false, true));
	scripts.put(58, new Script("GetStage", 58, false));
	scripts.put(59, new Script("GetStageDone", 59, false, true));
	scripts.put(60, new Script("GetFactionRankDifference", 60, true, false));
	scripts.put(61, new Script("GetAlarmed", 61));
	scripts.put(62, new Script("IsRaining", 62));
	scripts.put(63, new Script("GetAttacked", 63));
	scripts.put(64, new Script("GetIsCreature", 64));
	scripts.put(65, new Script("GetLockLevel", 65));
	scripts.put(66, new Script("GetShouldAttack", 66, false));
	scripts.put(67, new Script("GetInCell", 67, true));
	scripts.put(68, new Script("GetIsClass", 68, true));
	scripts.put(69, new Script("GetIsRace", 69, true));
	scripts.put(70, new Script("GetIsSex", 70, true));
	scripts.put(71, new Script("GetInFaction", 71, true));
	scripts.put(72, new Script("GetIsID", 72, true));
	scripts.put(73, new Script("GetFactionRank", 73, true));
	scripts.put(74, new Script("GetGlobalValue", 74, true));
	scripts.put(75, new Script("IsSnowing", 75));
	scripts.put(76, new Script("FastTravel", 76, false, true));
	scripts.put(77, new Script("GetRandomPercent", 77));
	scripts.put(78, new Script("RemoveMusic", 78, true));
	scripts.put(79, new Script("GetQuestVariable", 79, false, true, false));
	scripts.put(80, new Script("GetLevel", 80));
	scripts.put(81, new Script("IsRotating", 81));
	scripts.put(82, new Script("RemoveItem", 82, true, false, false));
	scripts.put(83, new Script("GetLeveledEncounterValue", 83, false));
	scripts.put(84, new Script("GetDeadCount", 84, true, false));
	scripts.put(85, new Script("AddToMap", 85, false, true, false, false));
	scripts.put(86, new Script("StartConversation", 86, true, false, true, true, false, false));
	scripts.put(87, new Script("Drop", 87, true, false));
	scripts.put(88, new Script("AddTopic", 88, false));
	scripts.put(89, new Script("ShowMessage", 89, true));
	scripts.put(90, new Script("SetAlert", 90, false));
	scripts.put(91, new Script("GetIsAlerted", 91));
	scripts.put(92, new Script("Look", 92, true, false));
	scripts.put(93, new Script("StopLook", 93));
	scripts.put(94, new Script("EvaluatePackage", 94, false));
	scripts.put(95, new Script("SendAssaultAlarm", 95, false, true));
	scripts.put(96, new Script("EnablePlayerControls", 96, false, false, false, false, false, false, false, false, false, false));
	scripts.put(97, new Script("DisablePlayerControls", 97, false, false, false, false, false, false, false, false, false, false));
	scripts.put(98, new Script("GetPlayerControlsDisabled", 98, false, false, false, false, false, false, false, false, false));
	scripts.put(99, new Script("GetHeadingAngle", 99, true));
	scripts.put(100, new Script("PickIdle", 100));
	scripts.put(101, new Script("IsWeaponMagicOut", 101));
	scripts.put(102, new Script("IsTorchOut", 102));
	scripts.put(103, new Script("IsShieldOut", 103));
	scripts.put(104, new Script("CreateDetectionEvent", 104, true, false));
	scripts.put(105, new Script("IsActionRef", 105, true));
	scripts.put(106, new Script("IsFacingUp", 106));
	scripts.put(107, new Script("GetKnockedState", 107));
	scripts.put(108, new Script("GetWeaponAnimType", 108));
	scripts.put(109, new Script("IsWeaponSkillType", 109, true, false));
	scripts.put(110, new Script("GetCurrentAIPackage", 110));
	scripts.put(111, new Script("IsWaiting", 111));
	scripts.put(112, new Script("IsIdlePlaying", 112));
	scripts.put(113, new Script("CompleteQuest", 113, false));
	scripts.put(114, new Script("Lock", 114, false, false));
	scripts.put(115, new Script("UnLock", 115, false));
	scripts.put(116, new Script("IsIntimidatedbyPlayer", 116));
	scripts.put(117, new Script("IsPlayerInRegion", 117, true));
	scripts.put(118, new Script("GetActorAggroRadiusViolated", 118));
	scripts.put(119, new Script("GetCrimeKnown", 119, true, false, false, false));
	scripts.put(120, new Script("SetEnemy", 120, true, true, false, false));
	scripts.put(121, new Script("SetAlly", 121, true, true, false, false));
	scripts.put(122, new Script("GetCrime", 122, false, true, false));
	scripts.put(123, new Script("IsGreetingPlayer", 123));
	scripts.put(124, new Script("StartMisterSandMan", 124, false));
	scripts.put(125, new Script("IsGuard", 125));
	scripts.put(126, new Script("StartCannibal", 126, false));
	scripts.put(127, new Script("HasBeenEaten", 127));
	scripts.put(128, new Script("GetStaminaPercentage", 128, false));
	scripts.put(129, new Script("GetPCIsClass", 129, true));
	scripts.put(130, new Script("GetPCIsRace", 130, true));
	scripts.put(131, new Script("GetPCIsSex", 131, true));
	scripts.put(132, new Script("GetPCInFaction", 132, true));
	scripts.put(133, new Script("SameFactionAsPC", 133));
	scripts.put(134, new Script("SameRaceAsPC", 134));
	scripts.put(135, new Script("SameSexAsPC", 135));
	scripts.put(136, new Script("GetIsReference", 136, true));
	scripts.put(137, new Script("SetFactionRank", 137, true, false));
	scripts.put(138, new Script("ModFactionRank", 138, true, false));
	scripts.put(139, new Script("KillActor", 139, false, false, false, false));
	scripts.put(140, new Script("ResurrectActor", 140, false, false));
	scripts.put(141, new Script("IsTalking", 141));
	scripts.put(142, new Script("GetWalkSpeed", 142, false));
	scripts.put(143, new Script("GetCurrentAIProcedure", 143));
	scripts.put(144, new Script("GetTrespassWarningLevel", 144));
	scripts.put(145, new Script("IsTrespassing", 145));
	scripts.put(146, new Script("IsInMyOwnedCell", 146));
	scripts.put(147, new Script("GetWindSpeed", 147));
	scripts.put(148, new Script("GetCurrentWeatherPercent", 148, false));
	scripts.put(149, new Script("GetIsCurrentWeather", 149, false, true, false));
	scripts.put(150, new Script("IsContinuingPackagePCNear", 150));
	scripts.put(151, new Script("SetCrimeFaction", 151, true));
	scripts.put(152, new Script("GetIsCrimeFaction", 152, true));
	scripts.put(153, new Script("CanHaveFlames", 153));
	scripts.put(154, new Script("HasFlames", 154));
	scripts.put(155, new Script("AddFlames", 155));
	scripts.put(156, new Script("RemoveFlames", 156));
	scripts.put(157, new Script("GetOpenState", 157));
	scripts.put(158, new Script("MoveToMarker", 158, false, true, false, false, false));
	scripts.put(159, new Script("GetSitting", 159));
	scripts.put(160, new Script("GetFurnitureMarkerID", 160));
	scripts.put(161, new Script("GetIsCurrentPackage", 161, true));
	scripts.put(162, new Script("IsCurrentFurnitureRef", 162, true));
	scripts.put(163, new Script("IsCurrentFurnitureObj", 163, true));
	scripts.put(164, new Script("SetSize", 164, false, false));
	scripts.put(165, new Script("RemoveMe", 165, false));
	scripts.put(166, new Script("DropMe", 166));
	scripts.put(167, new Script("GetFactionReaction", 167, true, true));
	scripts.put(168, new Script("SetFactionReaction", 168, true, true, false));
	scripts.put(169, new Script("ModFactionReaction", 169, true, true, false));
	scripts.put(170, new Script("GetDayOfWeek", 170));
	scripts.put(171, new Script("IgnoreCrime", 171, false));
	scripts.put(172, new Script("GetTalkedToPCParam", 172, false));
	scripts.put(173, new Script("RemoveAllItems", 173, false, false, false, false, false, false));
	scripts.put(174, new Script("WakeUpPC", 174, false));
	scripts.put(175, new Script("IsPCSleeping", 175));
	scripts.put(176, new Script("IsPCAMurderer", 176));
	scripts.put(177, new Script("SetCombatStyle", 177, false, true, false));
	scripts.put(178, new Script("PlaySound3D", 178, true));
	scripts.put(179, new Script("SelectPlayerSpell", 179, false, true, false, true, false));
	scripts.put(180, new Script("HasSameEditorLocAsRef", 180, true, true));
	scripts.put(181, new Script("HasSameEditorLocAsRefAlias", 181, true, true));
	scripts.put(182, new Script("GetEquipped", 182, true));
	scripts.put(183, new Script("Wait", 183, true));
	scripts.put(184, new Script("StopWaiting", 184, true));
	scripts.put(185, new Script("IsSwimming", 185));
	scripts.put(186, new Script("ScriptEffectElapsedSeconds", 186));
	scripts.put(187, new Script("SetCellPublicFlag", 187, false, true, false));
	scripts.put(188, new Script("GetPCSleepHours", 188));
	scripts.put(189, new Script("SetPCSleepHours", 189, false));
	scripts.put(190, new Script("GetAmountSoldStolen", 190));
	scripts.put(191, new Script("ModAmountSoldStolen", 191, false));
	scripts.put(192, new Script("GetIgnoreCrime", 192));
	scripts.put(193, new Script("GetPCExpelled", 193, true));
	scripts.put(194, new Script("SetPCExpelled", 194, true, false));
	scripts.put(195, new Script("GetPCFactionMurder", 195, true));
	scripts.put(196, new Script("SetPCFactionMurder", 196, true, false));
	scripts.put(197, new Script("GetPCEnemyofFaction", 197, true));
	scripts.put(198, new Script("SetPCEnemyofFaction", 198, true, false));
	scripts.put(199, new Script("GetPCFactionAttack", 199, true));
	scripts.put(200, new Script("SetPCFactionAttack", 200, true, false));
	scripts.put(201, new Script("StartScene", 201, true));
	scripts.put(202, new Script("StopScene", 202, true));
	scripts.put(203, new Script("GetDestroyed", 203));
	scripts.put(204, new Script("SetDestroyed", 204, false));
	scripts.put(205, new Script("GetActionRef", 205, false));
	scripts.put(206, new Script("GetSelf", 206, false));
	scripts.put(207, new Script("GetContainer", 207));
	scripts.put(208, new Script("GetForceRun", 208));
	scripts.put(209, new Script("SetForceRun", 209, false));
	scripts.put(210, new Script("GetForceSneak", 210));
	scripts.put(211, new Script("SetForceSneak", 211, false));
	scripts.put(212, new Script("AdvancePCSkill", 212, false, true, false, false));
	scripts.put(213, new Script("AdvancePCLevel", 213, false));
	scripts.put(214, new Script("HasMagicEffect", 214, true, false));
	scripts.put(215, new Script("GetDefaultOpen", 215));
	scripts.put(216, new Script("SetDefaultOpen", 216, false));
	scripts.put(217, new Script("ShowClassMenu", 217));
	scripts.put(218, new Script("ShowRaceMenu", 218, false, true));
	scripts.put(219, new Script("GetAnimAction", 219));
	scripts.put(220, new Script("ShowNameMenu", 220));
	scripts.put(221, new Script("SetOpenState", 221, false));
	scripts.put(222, new Script("ResetReference", 222, false, true));
	scripts.put(223, new Script("IsSpellTarget", 223, true, false));
	scripts.put(224, new Script("GetVATSMode", 224));
	scripts.put(225, new Script("GetPersuasionNumber", 225));
	scripts.put(226, new Script("GetVampireFeed", 226));
	scripts.put(227, new Script("GetCannibal", 227));
	scripts.put(228, new Script("GetIsClassDefault", 228, true));
	scripts.put(229, new Script("GetClassDefaultMatch", 229));
	scripts.put(230, new Script("GetInCellParam", 230, true, true));
	scripts.put(231, new Script("UnusedFunction1", 231));
	scripts.put(232, new Script("GetCombatTarget", 232));
	scripts.put(233, new Script("GetPackageTarget", 233));
	scripts.put(234, new Script("ShowSpellMaking", 234));
	scripts.put(235, new Script("GetVatsTargetHeight", 235));
	scripts.put(236, new Script("SetGhost", 236, false));
	scripts.put(237, new Script("GetIsGhost", 237));
	scripts.put(238, new Script("EquipItem", 238, false, true, false, true));
	scripts.put(239, new Script("UnequipItem", 239, false, true, false, true));
	scripts.put(240, new Script("SetClass", 240, true));
	scripts.put(241, new Script("SetUnconscious", 241, false));
	scripts.put(242, new Script("GetUnconscious", 242));
	scripts.put(243, new Script("SetRestrained", 243, false));
	scripts.put(244, new Script("GetRestrained", 244));
	scripts.put(245, new Script("ForceFlee", 245, false, true, true));
	scripts.put(246, new Script("GetIsUsedItem", 246, true));
	scripts.put(247, new Script("GetIsUsedItemType", 247, true, false));
	scripts.put(248, new Script("IsScenePlaying", 248, true));
	scripts.put(249, new Script("IsInDialogueWithPlayer", 249));
	scripts.put(250, new Script("GetLocationCleared", 250, true));
	scripts.put(251, new Script("SetLocationCleared", 251, true, false));
	scripts.put(252, new Script("ForceRefIntoAlias", 252, true));
	scripts.put(253, new Script("EmptyRefAlias", 253, true));
	scripts.put(254, new Script("GetIsPlayableRace", 254));
	scripts.put(255, new Script("GetOffersServicesNow", 255));
	scripts.put(256, new Script("GetGameSetting", 256, false, false));
	scripts.put(257, new Script("StopCombatAlarmOnActor", 257, false));
	scripts.put(258, new Script("HasAssociationType", 258, false, true));
	scripts.put(259, new Script("HasFamilyRelationship", 259, false, false));
	scripts.put(260, new Script("SetWeather", 260, false, true, false, false));
	scripts.put(261, new Script("HasParentRelationship", 261, false, false));
	scripts.put(262, new Script("IsWarningAbout", 262, true, false));
	scripts.put(263, new Script("IsWeaponOut", 263));
	scripts.put(264, new Script("HasSpell", 264, true, false));
	scripts.put(265, new Script("IsTimePassing", 265));
	scripts.put(266, new Script("IsPleasant", 266));
	scripts.put(267, new Script("IsCloudy", 267));
	scripts.put(268, new Script("TrapUpdate", 268));
	scripts.put(269, new Script("ShowQuestObjectives", 269, false, false));
	scripts.put(270, new Script("ForceActorValue", 270, false, true, false, false));
	scripts.put(271, new Script("IncrementPCSkill", 271, false, true, false));
	scripts.put(272, new Script("DoTrap", 272, true, false, false, false, false, false, false, false, false, false, false));
	scripts.put(273, new Script("EnableFastTravel", 273, false, false));
	scripts.put(274, new Script("IsSmallBump", 274));
	scripts.put(275, new Script("GetParentRef", 275));
	scripts.put(276, new Script("PlayBink", 276, false, false, false, false, false));
	scripts.put(277, new Script("GetBaseActorValue", 277, false, true, false));
	scripts.put(278, new Script("IsOwner", 278, true));
	scripts.put(279, new Script("SetOwnership", 279, true));
	scripts.put(280, new Script("IsCellOwner", 280, true, true));
	scripts.put(281, new Script("SetCellOwnership", 281, true, true));
	scripts.put(282, new Script("IsHorseStolen", 282));
	scripts.put(283, new Script("SetCellFullName", 283, true, true));
	scripts.put(284, new Script("SetActorFullName", 284, true));
	scripts.put(285, new Script("IsLeftUp", 285));
	scripts.put(286, new Script("IsSneaking", 286));
	scripts.put(287, new Script("IsRunning", 287));
	scripts.put(288, new Script("GetFriendHit", 288));
	scripts.put(289, new Script("IsInCombat", 289, false));
	scripts.put(290, new Script("SetPackDuration", 290, false, false));
	scripts.put(291, new Script("PlayMagicShaderVisuals", 291, false, true, false, false, false));
	scripts.put(292, new Script("PlayMagicEffectVisuals", 292, false, true, false, false));
	scripts.put(293, new Script("StopMagicShaderVisuals", 293, false, true, false, false));
	scripts.put(294, new Script("StopMagicEffectVisuals", 294, false, true, false));
	scripts.put(295, new Script("ResetInterior", 295, true));
	scripts.put(296, new Script("IsAnimPlaying", 296, true, false));
	scripts.put(297, new Script("SetActorAlpha", 297, false, false, false));
	scripts.put(298, new Script("EnableLinkedPathPoints", 298));
	scripts.put(299, new Script("DisableLinkedPathPoints", 299));
	scripts.put(300, new Script("IsInInterior", 300));
	scripts.put(301, new Script("ForceWeather", 301, false, true, false, false));
	scripts.put(302, new Script("ToggleActorsAI", 302));
	scripts.put(303, new Script("IsActorsAIOff", 303));
	scripts.put(304, new Script("IsWaterObject", 304));
	scripts.put(305, new Script("GetPlayerAction", 305));
	scripts.put(306, new Script("IsActorUsingATorch", 306));
	scripts.put(307, new Script("SetLevel", 307, false, false, false, false));
	scripts.put(308, new Script("ResetFallDamageTimer", 308));
	scripts.put(309, new Script("IsXBox", 309));
	scripts.put(310, new Script("GetInWorldspace", 310, true));
	scripts.put(311, new Script("ModPCMiscStat", 311, false, true, false, false));
	scripts.put(312, new Script("GetPCMiscStat", 312, false, true, false));
	scripts.put(313, new Script("GetPairedAnimation", 313, false));
	scripts.put(314, new Script("IsActorAVictim", 314));
	scripts.put(315, new Script("GetTotalPersuasionNumber", 315));
	scripts.put(316, new Script("SetScale", 316, false));
	scripts.put(317, new Script("ModScale", 317, false));
	scripts.put(318, new Script("GetIdleDoneOnce", 318));
	scripts.put(319, new Script("KillAllActors", 319, false, false));
	scripts.put(320, new Script("GetNoRumors", 320));
	scripts.put(321, new Script("SetNoRumors", 321, false));
	scripts.put(322, new Script("Dispel", 322, true, false));
	scripts.put(323, new Script("GetCombatState", 323));
	scripts.put(324, new Script("TriggerHitShader", 324, false, false));
	scripts.put(325, new Script("GetWithinPackageLocation", 325, true, false));
	scripts.put(326, new Script("Reset3DState", 326));
	scripts.put(327, new Script("IsRidingHorse", 327));
	scripts.put(328, new Script("DispelAllSpells", 328));
	scripts.put(329, new Script("IsFleeing", 329));
	scripts.put(330, new Script("AddAchievement", 330, false));
	scripts.put(331, new Script("DuplicateAllItems", 331, false, false, false));
	scripts.put(332, new Script("IsInDangerousWater", 332));
	scripts.put(333, new Script("EssentialDeathReload", 333, false));
	scripts.put(334, new Script("SetShowQuestItems", 334, false));
	scripts.put(335, new Script("DuplicateNPCStats", 335, false));
	scripts.put(336, new Script("ResetHealth", 336));
	scripts.put(337, new Script("SetIgnoreFriendlyHits", 337, false, false));
	scripts.put(338, new Script("GetIgnoreFriendlyHits", 338, false));
	scripts.put(339, new Script("IsPlayersLastRiddenHorse", 339));
	scripts.put(340, new Script("SetActorRefraction", 340, false, false));
	scripts.put(341, new Script("SetItemValue", 341, false));
	scripts.put(342, new Script("SetRigidBodyMass", 342, false));
	scripts.put(343, new Script("ShowViewerStrings", 343, false));
	scripts.put(344, new Script("ReleaseWeatherOverride", 344, false));
	scripts.put(345, new Script("SetAllReachable", 345, false));
	scripts.put(346, new Script("SetAllVisible", 346, false));
	scripts.put(347, new Script("SetNoAvoidance", 347, false));
	scripts.put(348, new Script("SendTrespassAlarm", 348, false));
	scripts.put(349, new Script("SetSceneIsComplex", 349, false));
	scripts.put(350, new Script("Autosave", 350));
	scripts.put(351, new Script("StartMasterFileSeekData", 351));
	scripts.put(352, new Script("DumpMasterFileSeekData", 352));
	scripts.put(353, new Script("IsActor", 353));
	scripts.put(354, new Script("IsEssential", 354));
	scripts.put(355, new Script("PreloadMagicEffect", 355, true, false));
	scripts.put(356, new Script("ShowDialogSubtitles", 356, false));
	scripts.put(357, new Script("SetPlayerResistingArrest", 357));
	scripts.put(358, new Script("IsPlayerMovingIntoNewSpace", 358));
	scripts.put(359, new Script("GetInCurrentLoc", 359, true));
	scripts.put(360, new Script("GetInCurrentLocAlias", 360, true));
	scripts.put(361, new Script("GetTimeDead", 361));
	scripts.put(362, new Script("HasLinkedRef", 362, true));
	scripts.put(363, new Script("GetLinkedRef", 363, true));
	scripts.put(364, new Script("DamageObject", 364, false, false));
	scripts.put(365, new Script("IsChild", 365));
	scripts.put(366, new Script("GetStolenItemValueNoCrime", 366, true));
	scripts.put(367, new Script("GetLastPlayerAction", 367));
	scripts.put(368, new Script("IsPlayerActionActive", 368, false));
	scripts.put(369, new Script("SetTalkingActivatorActor", 369, false));
	scripts.put(370, new Script("IsTalkingActivatorActor", 370, false));
	scripts.put(371, new Script("ShowBarterMenu", 371, false, false));
	scripts.put(372, new Script("IsInList", 372, true, false));
	scripts.put(373, new Script("GetStolenItemValue", 373, true));
	scripts.put(374, new Script("AddPerk", 374, true));
	scripts.put(375, new Script("GetCrimeGoldViolent", 375, false, true));
	scripts.put(376, new Script("GetCrimeGoldNonviolent", 376, false, true));
	scripts.put(377, new Script("ShowRepairMenu", 377, false));
	scripts.put(378, new Script("HasShout", 378, true));
	scripts.put(379, new Script("AddNote", 379, false, true));
	scripts.put(380, new Script("RemoveNote", 380, false, true));
	scripts.put(381, new Script("GetHasNote", 381, false, true));
	scripts.put(382, new Script("AddToFaction", 382, false, true, false));
	scripts.put(383, new Script("RemoveFromFaction", 383, false, true));
	scripts.put(384, new Script("DamageActorValue", 384, false, true, false, false));
	scripts.put(385, new Script("RestoreActorValue", 385, false, true, false, false));
	scripts.put(386, new Script("TriggerHUDShudder", 386, false, false, false, false, false));
	scripts.put(387, new Script("GetObjectiveFailed", 387, false, false));
	scripts.put(388, new Script("SetObjectiveFailed", 388, false, false, false));
	scripts.put(389, new Script("SetGlobalTimeMultiplier", 389, false, false));
	scripts.put(390, new Script("GetHitLocation", 390));
	scripts.put(391, new Script("IsPC1stPerson", 391, false));
	scripts.put(392, new Script("PurgeCellBuffers", 392, false));
	scripts.put(393, new Script("PushActorAway", 393, true, false));
	scripts.put(394, new Script("SetActorsAI", 394, false));
	scripts.put(395, new Script("ClearOwnership", 395));
	scripts.put(396, new Script("GetCauseofDeath", 396));
	scripts.put(397, new Script("IsLimbGone", 397, false));
	scripts.put(398, new Script("IsWeaponInList", 398, true, false));
	scripts.put(399, new Script("PlayIdle", 399, false));
	scripts.put(400, new Script("ApplyImageSpaceModifier", 400, false, true, false, false, false));
	scripts.put(401, new Script("RemoveImageSpaceModifier", 401, false, true, false, false, false));
	scripts.put(402, new Script("IsBribedbyPlayer", 402));
	scripts.put(403, new Script("GetRelationshipRank", 403, false));
	scripts.put(404, new Script("SetRelationshipRank", 404, false, false));
	scripts.put(405, new Script("SetCellImageSpace", 405, true, true));
	scripts.put(406, new Script("ShowChargenMenu", 406, false));
	scripts.put(407, new Script("GetVATSValue", 407, false, false));
	scripts.put(408, new Script("IsKiller", 408, false));
	scripts.put(409, new Script("IsKillerObject", 409, true, false));
	scripts.put(410, new Script("GetFactionCombatReaction", 410, true, true));
	scripts.put(411, new Script("UseWeapon", 411, true, true, true, false, false, false, false, false, true));
	scripts.put(412, new Script("EvaluateSpellConditions", 412, false));
	scripts.put(413, new Script("ToggleMotionBlur", 413, false));
	scripts.put(414, new Script("Exists", 414, true));
	scripts.put(415, new Script("GetGroupMemberCount", 415));
	scripts.put(416, new Script("GetGroupTargetCount", 416));
	scripts.put(417, new Script("SetObjectiveCompleted", 417, false, false, false));
	scripts.put(418, new Script("SetObjectiveDisplayed", 418, false, false, false));
	scripts.put(419, new Script("GetObjectiveCompleted", 419, false, false));
	scripts.put(420, new Script("GetObjectiveDisplayed", 420, false, false));
	scripts.put(421, new Script("SetImageSpace", 421, true));
	scripts.put(422, new Script("PipboyRadio", 422, false, false, true));
	scripts.put(423, new Script("RemovePerk", 423, true));
	scripts.put(424, new Script("DisableAllActors", 424, false));
	scripts.put(425, new Script("GetIsFormType", 425, false));
	scripts.put(426, new Script("GetIsVoiceType", 426, true));
	scripts.put(427, new Script("GetPlantedExplosive", 427));
	scripts.put(428, new Script("CompleteAllObjectives", 428, false));
	scripts.put(429, new Script("IsScenePackageRunning", 429));
	scripts.put(430, new Script("GetHealthPercentage", 430));
	scripts.put(431, new Script("SetAudioMultithreading", 431, false, false));
	scripts.put(432, new Script("GetIsObjectType", 432, true, false));
	scripts.put(433, new Script("ShowChargenMenuParams", 433, false, false, false, false));
	scripts.put(434, new Script("GetDialogueEmotion", 434));
	scripts.put(435, new Script("GetDialogueEmotionValue", 435));
	scripts.put(436, new Script("ExitGame", 436, false));
	scripts.put(437, new Script("GetIsCreatureType", 437, false));
	scripts.put(438, new Script("PlayerCreatePotion", 438, true, false, true, false, true, false));
	scripts.put(439, new Script("PlayerEnchantObject", 439, true, true, false, true, false));
	scripts.put(440, new Script("ShowWarning", 440, false));
	scripts.put(441, new Script("EnterTrigger", 441, true));
	scripts.put(442, new Script("MarkForDelete", 442));
	scripts.put(443, new Script("SetPlayerAIDriven", 443, false));
	scripts.put(444, new Script("GetInCurrentLocFormList", 444, true, false));
	scripts.put(445, new Script("GetInZone", 445, true));
	scripts.put(446, new Script("GetVelocity", 446, true));
	scripts.put(447, new Script("GetGraphVariableFloat", 447, false));
	scripts.put(448, new Script("HasPerk", 448, true));
	scripts.put(449, new Script("GetFactionRelation", 449, false));
	scripts.put(450, new Script("IsLastIdlePlayed", 450, true, false));
	scripts.put(451, new Script("SetNPCRadio", 451, false, false, true));
	scripts.put(452, new Script("SetPlayerTeammate", 452, false));
	scripts.put(453, new Script("GetPlayerTeammate", 453));
	scripts.put(454, new Script("GetPlayerTeammateCount", 454));
	scripts.put(455, new Script("OpenActorContainer", 455, false));
	scripts.put(456, new Script("ClearFactionPlayerEnemyFlag", 456, true));
	scripts.put(457, new Script("ClearActorsFactionsPlayerEnemyFlag", 457));
	scripts.put(458, new Script("GetActorCrimePlayerEnemy", 458));
	scripts.put(459, new Script("GetCrimeGold", 459, true));
	scripts.put(460, new Script("SetCrimeGold", 460, false, false, true));
	scripts.put(461, new Script("ModCrimeGold", 461, false, false, false, true));
	scripts.put(462, new Script("GetPlayerGrabbedRef", 462));
	scripts.put(463, new Script("IsPlayerGrabbedRef", 463, true));
	scripts.put(464, new Script("PlaceLeveledActorAtMe", 464, true, false, true));
	scripts.put(465, new Script("GetKeywordItemCount", 465, true));
	scripts.put(466, new Script("ShowLockpickMenu", 466, false, false));
	scripts.put(467, new Script("GetBroadcastState", 467));
	scripts.put(468, new Script("SetBroadcastState", 468, false));
	scripts.put(469, new Script("StartRadioConversation", 469, false));
	scripts.put(470, new Script("GetDestructionStage", 470));
	scripts.put(471, new Script("ClearDestruction", 471));
	scripts.put(472, new Script("CastImmediateOnSelf", 472, false, true, false));
	scripts.put(473, new Script("GetIsAlignment", 473, true));
	scripts.put(474, new Script("ResetQuest", 474, false));
	scripts.put(475, new Script("SetQuestDelay", 475, false, false));
	scripts.put(476, new Script("IsProtected", 476));
	scripts.put(477, new Script("GetThreatRatio", 477, false));
	scripts.put(478, new Script("MatchFaceGeometry", 478, false, false));
	scripts.put(479, new Script("GetIsUsedItemEquipType", 479, true));
	scripts.put(480, new Script("GetPlayerName", 480));
	scripts.put(481, new Script("FireWeapon", 481, true));
	scripts.put(482, new Script("PayCrimeGold", 482, false, false, true));
	scripts.put(483, new Script("UnusedFunction2", 483, false));
	scripts.put(484, new Script("MatchRace", 484, false));
	scripts.put(485, new Script("SetPCYoung", 485, false));
	scripts.put(486, new Script("SexChange", 486, true, false));
	scripts.put(487, new Script("IsCarryable", 487));
	scripts.put(488, new Script("GetConcussed", 488));
	scripts.put(489, new Script("SetZoneRespawns", 489, true, false));
	scripts.put(490, new Script("SetVATSTarget", 490, false));
	scripts.put(491, new Script("GetMapMarkerVisible", 491));
	scripts.put(492, new Script("ResetInventory", 492));
	scripts.put(493, new Script("PlayerKnows", 493, true, false));
	scripts.put(494, new Script("GetPermanentActorValue", 494, false, true, false));
	scripts.put(495, new Script("GetKillingBlowLimb", 495));
	scripts.put(496, new Script("GoToJail", 496, true, false, false));
	scripts.put(497, new Script("CanPayCrimeGold", 497, true));
	scripts.put(498, new Script("ServeTime", 498));
	scripts.put(499, new Script("GetDaysInJail", 499));
	scripts.put(500, new Script("EPAlchemyGetMakingPoison", 500));
	scripts.put(501, new Script("EPAlchemyEffectHasKeyword", 501, true));
	scripts.put(502, new Script("ShowAllMapMarkers", 502, false, false, false, false));
	scripts.put(503, new Script("GetAllowWorldInteractions", 503));
	scripts.put(504, new Script("ResetAI", 504));
	scripts.put(505, new Script("SetRumble", 505, false, false, false));
	scripts.put(506, new Script("SetNoActivationSound", 506, true));
	scripts.put(507, new Script("ClearNoActivationSound", 507));
	scripts.put(508, new Script("GetLastHitCritical", 508));
	scripts.put(509, new Script("AddMusic", 509, true));
	scripts.put(510, new Script("UnusedFunction3", 510));
	scripts.put(511, new Script("UnusedFunction4", 511));
	scripts.put(512, new Script("SetPCToddler", 512, false));
	scripts.put(513, new Script("IsCombatTarget", 513, false));
	scripts.put(514, new Script("TriggerScreenBlood", 514, false, false));
	scripts.put(515, new Script("GetVATSRightAreaFree", 515, true));
	scripts.put(516, new Script("GetVATSLeftAreaFree", 516, true));
	scripts.put(517, new Script("GetVATSBackAreaFree", 517, true));
	scripts.put(518, new Script("GetVATSFrontAreaFree", 518, true));
	scripts.put(519, new Script("GetIsLockBroken", 519));
	scripts.put(520, new Script("IsPS3", 520));
	scripts.put(521, new Script("IsWin32", 521));
	scripts.put(522, new Script("GetVATSRightTargetVisible", 522, true));
	scripts.put(523, new Script("GetVATSLeftTargetVisible", 523, true));
	scripts.put(524, new Script("GetVATSBackTargetVisible", 524, true));
	scripts.put(525, new Script("GetVATSFrontTargetVisible", 525, true));
	scripts.put(526, new Script("AttachAshPile", 526, false));
	scripts.put(527, new Script("SetCriticalStage", 527, true));
	scripts.put(528, new Script("IsInCriticalStage", 528, true));
	scripts.put(529, new Script("RemoveFromAllFactions", 529));
	scripts.put(530, new Script("GetXPForNextLevel", 530));
	scripts.put(531, new Script("ShowLockpickMenuDebug", 531, false, false));
	scripts.put(532, new Script("ForceSave", 532));
	scripts.put(533, new Script("GetInfamy", 533, true));
	scripts.put(534, new Script("GetInfamyViolent", 534, true));
	scripts.put(535, new Script("GetInfamyNonViolent", 535, true));
	scripts.put(536, new Script("UnusedFunction5", 536));
	scripts.put(537, new Script("Sin", 537, false, false));
	scripts.put(538, new Script("Cos", 538, false, false));
	scripts.put(539, new Script("Tan", 539, false, false));
	scripts.put(540, new Script("Sqrt", 540, false));
	scripts.put(541, new Script("Log", 541, false, false));
	scripts.put(542, new Script("Abs", 542, false));
	scripts.put(543, new Script("GetQuestCompleted", 543, false, false));
	scripts.put(544, new Script("UnusedFunction6", 544));
	scripts.put(545, new Script("PipBoyRadioOff", 545));
	scripts.put(546, new Script("AutoDisplayObjectives", 546, false));
	scripts.put(547, new Script("IsGoreDisabled", 547));
	scripts.put(548, new Script("FadeSFX", 548, false, false));
	scripts.put(549, new Script("SetMinimalUse", 549, false));
	scripts.put(550, new Script("IsSceneActionComplete", 550, true, false, false));
	scripts.put(551, new Script("ShowQuestStages", 551, false, false));
	scripts.put(552, new Script("GetSpellUsageNum", 552, true, false));
	scripts.put(553, new Script("ForceRadioStationUpdate", 553, false));
	scripts.put(554, new Script("GetActorsInHigh", 554));
	scripts.put(555, new Script("HasLoaded3D", 555));
	scripts.put(556, new Script("DisableAllMines", 556));
	scripts.put(557, new Script("SetLastExtDoorActivated", 557, true));
	scripts.put(558, new Script("KillQuestUpdates", 558, false));
	scripts.put(559, new Script("IsImageSpaceActive", 559, true, false, false));
	scripts.put(560, new Script("HasKeyword", 560, true));
	scripts.put(561, new Script("HasRefType", 561, true));
	scripts.put(562, new Script("LocationHasKeyword", 562, true));
	scripts.put(563, new Script("LocationHasRefType", 563, true));
	scripts.put(564, new Script("CreateEvent", 564, true, true, true, false, true, false, false, false, false, false));
	scripts.put(565, new Script("GetIsEditorLocation", 565, true));
	scripts.put(566, new Script("GetIsAliasRef", 566, true));
	scripts.put(567, new Script("GetIsEditorLocAlias", 567, true));
	scripts.put(568, new Script("IsSprinting", 568));
	scripts.put(569, new Script("IsBlocking", 569));
	scripts.put(570, new Script("HasEquippedSpell", 570, false, true, false));
	scripts.put(571, new Script("GetCurrentCastingType", 571, false, true, false));
	scripts.put(572, new Script("GetCurrentDeliveryType", 572, false, true, false));
	scripts.put(573, new Script("EquipSpell", 573, true, false, true, false));
	scripts.put(574, new Script("GetAttackState", 574));
	scripts.put(575, new Script("GetAliasedRef", 575, true));
	scripts.put(576, new Script("GetEventData", 576, true, false, true, false, true));
	scripts.put(577, new Script("IsCloserToAThanB", 577, true, true));
	scripts.put(578, new Script("EquipShout", 578, true));
	scripts.put(579, new Script("GetEquippedShout", 579, true));
	scripts.put(580, new Script("IsBleedingOut", 580));
	scripts.put(581, new Script("UnlockWord", 581, true, false, false));
	scripts.put(582, new Script("TeachWord", 582, true, false, false));
	scripts.put(583, new Script("AddToContainer", 583, true, false));
	scripts.put(584, new Script("GetRelativeAngle", 584, true, true));
	scripts.put(585, new Script("SendAnimEvent", 585, false, false));
	scripts.put(586, new Script("Shout", 586, true, false, true));
	scripts.put(587, new Script("AddShout", 587, true));
	scripts.put(588, new Script("RemoveShout", 588, true));
	scripts.put(589, new Script("GetMovementDirection", 589));
	scripts.put(590, new Script("IsInScene", 590));
	scripts.put(591, new Script("GetRefTypeDeadCount", 591, true, true));
	scripts.put(592, new Script("GetRefTypeAliveCount", 592, true, true));
	scripts.put(593, new Script("ApplyHavokImpulse", 593, false, false, false, false));
	scripts.put(594, new Script("GetIsFlying", 594));
	scripts.put(595, new Script("IsCurrentSpell", 595, true, false, true, false));
	scripts.put(596, new Script("SpellHasKeyword", 596, true, false, true));
	scripts.put(597, new Script("GetEquippedItemType", 597, true, false));
	scripts.put(598, new Script("GetLocationAliasCleared", 598, true));
	scripts.put(599, new Script("SetLocationAliasCleared", 599, true));
	scripts.put(600, new Script("GetLocAliasRefTypeDeadCount", 600, true, true));
	scripts.put(601, new Script("GetLocAliasRefTypeAliveCount", 601, true, true));
	scripts.put(602, new Script("IsWardState", 602, true, false));
	scripts.put(603, new Script("IsInSameCurrentLocAsRef", 603, true, true));
	scripts.put(604, new Script("IsInSameCurrentLocAsRefAlias", 604, true, true));
	scripts.put(605, new Script("LocAliasIsLocation", 605, true, true));
	scripts.put(606, new Script("GetKeywordDataForLocation", 606, true, true));
	scripts.put(607, new Script("SetKeywordDataForLocation", 607, true, true, false));
	scripts.put(608, new Script("GetKeywordDataForAlias", 608, true, true));
	scripts.put(609, new Script("SetKeywordDataForAlias", 609, true, true, false));
	scripts.put(610, new Script("LocAliasHasKeyword", 610, true, true));
	scripts.put(611, new Script("IsNullPackageData", 611, true, false, false));
	scripts.put(612, new Script("GetNumericPackageData", 612, true, false));
	scripts.put(613, new Script("IsFurnitureAnimType", 613, true, false, false));
	scripts.put(614, new Script("IsFurnitureEntryType", 614, true, false, false));
	scripts.put(615, new Script("GetHighestRelationshipRank", 615));
	scripts.put(616, new Script("GetLowestRelationshipRank", 616));
	scripts.put(617, new Script("HasAssociationTypeAny", 617, true));
	scripts.put(618, new Script("HasFamilyRelationshipAny", 618));
	scripts.put(619, new Script("GetPathingTargetOffset", 619, true));
	scripts.put(620, new Script("GetPathingTargetAngleOffset", 620, true));
	scripts.put(621, new Script("GetPathingTargetSpeed", 621));
	scripts.put(622, new Script("GetPathingTargetSpeedAngle", 622, true));
	scripts.put(623, new Script("GetMovementSpeed", 623));
	scripts.put(624, new Script("GetInContainer", 624, true));
	scripts.put(625, new Script("IsLocationLoaded", 625, true));
	scripts.put(626, new Script("IsLocAliasLoaded", 626, true));
	scripts.put(627, new Script("IsDualCasting", 627));
	scripts.put(628, new Script("DualCast", 628, true, false, true));
	scripts.put(629, new Script("GetVMQuestVariable", 629, true, false));
	scripts.put(630, new Script("GetVMScriptVariable", 630, true, true, false, false));
	scripts.put(631, new Script("IsEnteringInteractionQuick", 631));
	scripts.put(632, new Script("IsCasting", 632));
	scripts.put(633, new Script("GetFlyingState", 633));
	scripts.put(634, new Script("SetFavorState", 634, false));
	scripts.put(635, new Script("IsInFavorState", 635));
	scripts.put(636, new Script("HasTwoHandedWeaponEquipped", 636));
	scripts.put(637, new Script("IsExitingInstant", 637));
	scripts.put(638, new Script("IsInFriendStatewithPlayer", 638));
	scripts.put(639, new Script("GetWithinDistance", 639, true, false));
	scripts.put(640, new Script("GetActorValuePercent", 640, true, false));
	scripts.put(641, new Script("IsUnique", 641));
	scripts.put(642, new Script("GetLastBumpDirection", 642));
	scripts.put(643, new Script("CameraShake", 643, false, false));
	scripts.put(644, new Script("IsInFurnitureState", 644, true, false, false));
	scripts.put(645, new Script("GetIsInjured", 645));
	scripts.put(646, new Script("GetIsCrashLandRequest", 646));
	scripts.put(647, new Script("GetIsHastyLandRequest", 647));
	scripts.put(648, new Script("UpdateQuestInstanceGlobal", 648, false, true));
	scripts.put(649, new Script("SetAllowFlying", 649, false));
	scripts.put(650, new Script("IsLinkedTo", 650, true, true));
	scripts.put(651, new Script("GetKeywordDataForCurrentLocation", 651, true));
	scripts.put(652, new Script("GetInSharedCrimeFaction", 652, true));
	scripts.put(653, new Script("GetBribeAmount", 653));
	scripts.put(654, new Script("GetBribeSuccess", 654));
	scripts.put(655, new Script("GetIntimidateSuccess", 655));
	scripts.put(656, new Script("GetArrestedState", 656));
	scripts.put(657, new Script("GetArrestingActor", 657));
	scripts.put(658, new Script("ClearArrestState", 658));
	scripts.put(659, new Script("EPTemperingItemIsEnchanted", 659));
	scripts.put(660, new Script("EPTemperingItemHasKeyword", 660, true));
	scripts.put(661, new Script("GetReceivedGiftValue", 661));
	scripts.put(662, new Script("GetGiftGivenValue", 662));
	scripts.put(663, new Script("ForceLocIntoAlias", 663, true, true));
	scripts.put(664, new Script("GetReplacedItemType", 664, true, false));
	scripts.put(665, new Script("SetHorseActor", 665, true));
	scripts.put(666, new Script("PlayReferenceEffect", 666, false, true, false, false, true, false));
	scripts.put(667, new Script("StopReferenceEffect", 667, false, true, false));
	scripts.put(668, new Script("PlayShaderParticleGeometry", 668, false, true, false));
	scripts.put(669, new Script("StopShaderParticleGeometry", 669, false, true, false));
	scripts.put(670, new Script("ApplyImageSpaceModifierCrossFade", 670, false, true, false, false, false));
	scripts.put(671, new Script("RemoveImageSpaceModifierCrossFade", 671, false, false));
	scripts.put(672, new Script("IsAttacking", 672));
	scripts.put(673, new Script("IsPowerAttacking", 673));
	scripts.put(674, new Script("IsLastHostileActor", 674));
	scripts.put(675, new Script("GetGraphVariableInt", 675, false));
	scripts.put(676, new Script("GetCurrentShoutVariation", 676));
	scripts.put(677, new Script("PlayImpactEffect", 677, false, false, false, false, false, false, false, false, false));
	scripts.put(678, new Script("ShouldAttackKill", 678, false));
	scripts.put(679, new Script("SendStealAlarm", 679, false, false));
	scripts.put(680, new Script("GetActivationHeight", 680));
	scripts.put(681, new Script("EPModSkillUsage_IsAdvanceSkill", 681, false));
	scripts.put(682, new Script("WornHasKeyword", 682, true));
	scripts.put(683, new Script("GetPathingCurrentSpeed", 683));
	scripts.put(684, new Script("GetPathingCurrentSpeedAngle", 684, true));
	scripts.put(685, new Script("KnockAreaEffect", 685, false, false, false));
	scripts.put(686, new Script("InterruptCast", 686));
	scripts.put(687, new Script("AddFormToFormList", 687, true, true));
	scripts.put(688, new Script("RevertFormList", 688, true));
	scripts.put(689, new Script("AddFormToLeveledList", 689, true, true, false, false));
	scripts.put(690, new Script("RevertLeveledList", 690, true));
	scripts.put(691, new Script("EPModSkillUsage_AdvanceObjectHasKeyword", 691, true));
	scripts.put(692, new Script("EPModSkillUsage_IsAdvanceAction", 692, true));
	scripts.put(693, new Script("EPMagic_SpellHasKeyword", 693, true));
	scripts.put(694, new Script("GetNoBleedoutRecovery", 694));
	scripts.put(695, new Script("SetNoBleedoutRecovery", 695, false));
	scripts.put(696, new Script("EPMagic_SpellHasSkill", 696, false));
	scripts.put(697, new Script("IsAttackType", 697, true));
	scripts.put(698, new Script("IsAllowedToFly", 698));
	scripts.put(699, new Script("HasMagicEffectKeyword", 699, true));
	scripts.put(700, new Script("IsCommandedActor", 700));
	scripts.put(701, new Script("IsStaggered", 701));
	scripts.put(702, new Script("IsRecoiling", 702));
	scripts.put(703, new Script("IsExitingInteractionQuick", 703));
	scripts.put(704, new Script("IsPathing", 704));
	scripts.put(705, new Script("GetShouldHelp", 705, false));
	scripts.put(706, new Script("HasBoundWeaponEquipped", 706, true, false));
	scripts.put(707, new Script("GetCombatTargetHasKeyword", 707, false, true));
	scripts.put(708, new Script("UpdateLevel", 708));
	scripts.put(709, new Script("GetCombatGroupMemberCount", 709, false));
	scripts.put(710, new Script("IsIgnoringCombat", 710));
	scripts.put(711, new Script("GetLightLevel", 711, false));
	scripts.put(712, new Script("SavePCFace", 712, false, false));
	scripts.put(713, new Script("SpellHasCastingPerk", 713, true));
	scripts.put(714, new Script("IsBeingRidden", 714));
	scripts.put(715, new Script("IsUndead", 715));
	scripts.put(716, new Script("GetRealHoursPassed", 716));
	scripts.put(717, new Script("UnequipAll", 717));
	scripts.put(718, new Script("IsUnlockedDoor", 718));
	scripts.put(719, new Script("IsHostileToActor", 719, false));
	scripts.put(720, new Script("GetTargetHeight", 720, true));
	scripts.put(721, new Script("IsPoison", 721));
	scripts.put(722, new Script("WornApparelHasKeywordCount", 722, true));
	scripts.put(723, new Script("GetItemHealthPercent", 723));
	scripts.put(724, new Script("EffectWasDualCast", 724));
	scripts.put(725, new Script("GetKnockStateEnum", 725));
	scripts.put(726, new Script("DoesNotExist", 726));
    }

    static Script getScript (int index) {
	if (scripts == null) {
	    init();
	}
	return scripts.get(index);
    }

    static class Script {

	String name;
	int index;
	boolean[] parameterFormMask;

	Script(String name, int index, boolean... parameters) {
	    this.name = name;
	    this.index = index;
	    parameterFormMask = parameters;
	}

	boolean isForm (int paramIndex) {
	    if (parameterFormMask.length > paramIndex && parameterFormMask[paramIndex]) {
		return true;
	    } else {
		return false;
	    }
	}
    }
}
